package cn.com.dcsgo.service;

import cn.com.dcsgo.model.search.SkuEs;
import cn.com.dcsgo.vo.search.SkuEsQueryVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * SkuService
 *
 * @author Dcsgo
 * @since 2025/4/17 上午11:15
 */

public interface SkuService {
    /**
     * 通过skuId向ES中添加SKU相关信息
     *
     * @param id skuId
     */
    void deleteById(Long id);

    /**
     * 通过skuId移除ES中SKU相关信息
     *
     * @param id skuId
     */
    void insertById(Long id);

    /**
     * 通过skuId批量移除ES中SKU相关信息
     *
     * @param skuIds skuId集合
     */
    void deleteByIds(List<Long> skuIds);

    /**
     * 获取指定数量的热门商品信息
     *
     * @param number 指定数量
     * @return 热门商品信息
     */
    List<SkuEs> getHotSkuInfoByCount(Integer number);

    /**
     * 分页条件查询SKU信息
     *
     * @param pageParma    分页参数
     * @param skuEsQueryVo 查询条件
     * @return Page->SkuEs
     */
    Page<SkuEs> getSkuListByPage(Pageable pageParma, SkuEsQueryVo skuEsQueryVo);

    /**
     * 通过skuId更新sku热度
     * @param skuId skuId
     */
    void plusSkuHotScore(Long skuId);
}
